#ifndef _ENESIM_BUFFER_H_
#define _ENESIM_BUFFER_H_

#include <gst/gst.h>
#include <Enesim.h>

#define GST_TYPE_ENESIM_BUFFER (gst_enesim_buffer_get_type())

#define GST_IS_ENESIM_BUFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_ENESIM_BUFFER))
#define GST_ENESIM_BUFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_ENESIM_BUFFER, GstEnesimBuffer))
#define GST_ENESIM_BUFFER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_ENESIM_BUFFER, GstEnesimBufferClass))

typedef struct _GstEnesimBuffer GstEnesimBuffer;

struct _GstEnesimBuffer
{
  GstBuffer buffer;
  Enesim_Buffer *b;
  GstBuffer *rel;
};

GstEnesimBuffer * gst_enesim_buffer_new(Enesim_Buffer_Format format, guint width, guint height, Enesim_Pool *pool);
GstEnesimBuffer * gst_enesim_buffer_new_from_buffer(GstBuffer *buf, Enesim_Buffer_Format format, guint width, guint height, Enesim_Pool *pool);

#endif
